package com.crm.system.service.customerManager;

import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.cluePoolManager.ClueVisitRecord;
import com.crm.model.entity.contractManager.CustomerContract;
import com.crm.model.entity.customerManager.*;
import com.crm.model.entity.orderManager.CustomerProductOrder;
import com.crm.model.qo.customerManager.AnalyseCustomerQO;
import com.crm.model.qo.customerManager.CustomerAddQO;
import com.crm.model.qo.customerManager.CustomerQO;
import com.crm.model.qo.customerManager.MoveCustomerQO;
import com.crm.model.vo.cluePoolManager.ClueFollowVO;
import com.crm.model.vo.contactManager.IndustryAreaVO;
import com.crm.model.vo.customerManager.*;
import com.crm.model.vo.datasearch.DataSearchResultVO;
import com.crm.model.vo.opportunityManager.OpportunityCustomerVO;
import com.crm.model.vo.returnMoney.CustFinanceProductOderVO;
import com.crm.model.vo.returnMoney.ProductOfCustomerVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @ Author ：baijian
 * @ Date   ：2021/7/11 15:54
 */
public interface CustomerRelationService {

    /**
     * 查询客户关联
     * @param customerId 客户id
     * @return
     */
    List<CustomerRelation> selectCustomerRelationList(String customerId);

    /**
     * 新增客户关联
     * @param customerRelation
     * @return
     */
    String addCustomerRelation(CustomerRelation customerRelation) throws ParseException;

    /**
     * 删除客户关联
     * @param customerRelation
     * @return
     */
    Boolean deleteCustomerRelation(CustomerRelation customerRelation);

    /**
     * 修改曾用名
     * @param customerRelation
     * @return
     */
    Boolean updateNameUsedBefore(CustomerRelation customerRelation);

    /**
     * 客户关联审核列表
     * @param pageIndex 页码
     * @param pageSize 条数
     * @param sortName 分组字段
     * @param sortOrder 排序
     * @param dateType 全部  all  本月 thisMonth 本周 thisWeek
     * @param customerName 客户名称
     * @return
     */
    DhPageInfo<CustomerRelationVO> examineCustomerRelationList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder,String dateType,String customerName);

    /**
     * 客户核验关联信息
     * @param customerRelation
     * @return
     */
    Boolean aexamineRelation(CustomerRelation customerRelation) throws ParseException;

    /**
     * 曾用名写入信用代码
     * @return
     */
    Boolean updateCustomerRelation();
}
